package com.huimin.merchant.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author amx
 * @create 2020/11/28 14:57
 */
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "swagger", value = {"enable"}, havingValue = "true")
public class SwaggerConfiguration {


	@Bean
	public Docket buildDocket() {

		return new Docket(DocumentationType.SWAGGER_2).apiInfo(buildApiInfo())
		                                              .select()
		                                              .apis(RequestHandlerSelectors
				                                                    // 扫描API基础包
				                                                    .basePackage("com.huimin.merchant.controller"))
		                                              .paths(PathSelectors.any()).build();
	}


	/**
	 * 构建API基本信息
	 *
	 * @return springfox.documentation.service.ApiInfo
	 */
	private ApiInfo buildApiInfo() {
		Contact contact = new Contact("开发者", "", "");

		return new ApiInfoBuilder().title("惠民支付-商户应用API文档")
		                           .description("")
		                           .contact(contact)
		                           .version("1.0.0").build();
	}
}
